// 定义一个插件
export default {
    // 这个函数 vue 实例创建前会被调用
    // 会接收到一个参数，表示的是Vue的原型对象
    install(Vue){
        // 注册全局过滤器
        Vue.filter('strSlice',function(value){
            return value.slice(0,4)
        })
        // 注册全局指令
        Vue.directive('fbind',{
            // 指令与元素成功绑定时调用的函数
            bind(element,binding) {
                // 设置元素的value值
                element.value = binding.value
            },
            // 指令所在的元素被放入页面时调用的函数
            inserted(element) {
                // 设置元素自动获取焦点
                element.focus()
            },
            // 指令所在元素所处的模板被更新时调用的函数
            update(element,binding) {
                // 需要重新设置value值
                element.value = binding.value
                // 重新设置自动获取焦点
                element.focus()
            }
        })

        // 注册混入
        Vue.mixin({
            data(){
                return {
                    msg: 'hello'
                }
            },
            methods: {
                f1() {
                    console.log('hi')
                }
            },
            created() {
                console.log('created')
            }
        })

        // 在Vue原型上添加方法
        Vue.prototype.showInfo = ()=>{
            console.log('Vue...')
        }
    }
}

// export default {
//     install(Vue,par1,par2,par3){
//         console.log(Vue)
//         console.log(par1,par2,par3)
//     }
// }


